package org.example.lease.service.dutyhandler.loginduty;

import org.example.lease.vo.login.LoginVo;

/**
 * 登录处理器接口
 */
public interface LoginHandler {
    /**
     * 处理登录请求
     *
     * @param loginVo 登录信息
     * @return 处理结果，如果返回null则表示处理成功，继续下一个处理器；如果没有下一个验证，则
     * 最后一个处理器返回登录token
     */
    String handle(LoginVo loginVo);

    /**
     * 设置下一个处理器
     *
     * @param nextHandler 下一个处理器
     * @return 当前处理器
     */
    LoginHandler setNext(LoginHandler nextHandler);
}
